1. Technical Field
Apparatuses and methods consistent with exemplary embodiments relate to a multithreading processor, and more particularly to a functional unit for supporting multithreading, a processor including the same, and an operating method thereof.
2. Description of the Related Art
With the development of computer technologies, there are frequent cases where not only one task, but also multiple tasks, are to be executed at the same time. Such simultaneous execution of multiple tasks may be accomplished by multiprocessing, multitasking, multiprogramming, and/or multithreading.
Multiprocessing is performed by multitasking, or multiplexing, or the like, in which multitasking may refer to processing multiple tasks in multiple processors (or threads), and multiplexing may refer to processing multiple tasks in one processor.
For example, when multitasking multiple operations (i.e. tasks) at the same time, an operating system (OS) may use a method of executing by using multiple processors (multi-processes), or executing multiple threads (multi-threads).
The multi-processes and the multi-threads may have in common a feature of simultaneous multiple flows of tasks. However, there are differences between the multi-processes and the multi-threads in that in the multi-processes, processes are executed independently from each other, and each has its own memory, while the multi-threads share memories in one process; a speed of conversion between threads is faster than a speed of conversion between processes; and scheduling of threads is also performed faster than scheduling of processes.